Don't send nsevents with the gdk lock held, fixes deadlock when doing
authorRichard Hult <richard@imendio.com>
Wed, 30 Apr 2008 17:46:00 +0000 (17:46 +0000)
committerRichard Hult <rhult@src.gnome.org>
Wed, 30 Apr 2008 17:46:00 +0000 (17:46 +0000)
2008-04-30  Richard Hult  <richard@imendio.com>

* gdk/quartz/gdkevents-quartz.c: (_gdk_events_queue): Don't send
nsevents with the gdk lock held, fixes deadlock when doing manual
window resizing with threading enabled.

svn path=/trunk/; revision=20055

ChangeLog
gdk/quartz/gdkevents-quartz.c

index 06f53c84d060afb49e9645ba8ddab07d47b4c2ce..aa36321bb40fd77c7d7af0bf3f437621dc3786e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-30  Richard Hult  <richard@imendio.com>
+
+       * gdk/quartz/gdkevents-quartz.c: (_gdk_events_queue): Don't send
+       nsevents with the gdk lock held, fixes deadlock when doing manual
+       window resizing with threading enabled.
+
 2008-04-30  Richard Hult  <richard@imendio.com>
 
        * gdk/quartz/gdkevents-quartz.c:
index 01b95ff415101ba152a96defde93228713b40218..61a42bff8e257de48e843e4bdc25fac4ebb5920e 100644 (file)
@@ -1948,7 +1948,11 @@ _gdk_events_queue (GdkDisplay *display)
   if (event)
     {
       if (!gdk_event_translate (event))
-        [NSApp sendEvent:event];
+        {
+          GDK_THREADS_LEAVE ();
+          [NSApp sendEvent:event];
+          GDK_THREADS_ENTER ();
+        }
 
       _gdk_quartz_event_loop_release_event (event);
     }